#include <Arduino.h>         // 导入Arduino库文件
#include <YYZT_AliyunMqtt.h> // 导入YYZT_AliyunMqtt库文件
#include <SoftwareSerial.h>  // 用于软串口通信

/**
 * U8g2lib.h库用于在不同显示类型上实现通用的图形用户界面，
 * Ticker.h库用于实现定时器功能，
 * SPI.h库用于实现串行外设接口（SPI），
 * Wire.h库用于实现连接I2C外设的接口，
 */

#include <U8g2lib.h>
#include <Ticker.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

/**
 * Hash.h库用于实现哈希函数，
 * Blinker.h库用于与Blinker IOT云服务器进行连接。
 **/
#include <Hash.h>    //解决'sha1' was not declared in this scope
#define BLINKER_WIFI // 以WiFi方式接入blinker
#include <Blinker.h> //导入blinker库

#include "config.h"           //导入配置文件,必须放在此位置,不然下面的文件无法使用config中的配置
#include "showDataByOled.hpp" //在oled显示数据
#include "espAlyMqtt.hpp"     //上报属性至阿里云
#include "sendDataByTcp.hpp"  //通过TCP传输数据
#include "espBlinker.hpp"     //blinker

// 变量声明
extern WiFiClient client;                           // 声明tcp client连接
extern AliyunMqtt aliyunMqtt;                       // 声明aliyunMqtt对象
extern String receive_data;                         // 用于接收mega的数据
extern U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2; // 用于操作oled
